 //
//  MJWelcomeViewController.swift
//  新浪微博
//
//  Created by MaJi on 16/4/10.
//  Copyright © 2016年 MaJi. All rights reserved.
//

import UIKit
import SnapKit
import SDWebImage
 
class MJWelcomeViewController: UIViewController {

    override func loadView() {
        view = UIImageView(image: UIImage(named: "ad_background"))
        
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        setUi()
//        不能在这里设置动画,这样图片是从旁边过来的,不是从底部,因为这时候获取的根视图的大小,frame是不准确的
//        startAnimation()
//        print(view.frame)
    }
    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
                startAnimation()
//        print(view.frame)
    }
    override func viewWillLayoutSubviews() {
        //会自动给根视图大小重新设置和设备的屏幕尺寸大小一致的size
        super.viewWillLayoutSubviews()
//        print(view.frame)
    }
    
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
//        print(view.frame)
    }

//    添加子控件
    private func setUi(){
        view.addSubview(imageIcon)
        view.addSubview(nameLabel)
//        print(nameLabel)
//        把头像裁剪成圆形 头像大小是180*180, 2X,在屏幕上是90*90
//        应该使用比例
//        已经在延展中重写imageIcon.layer.cornerRadius的set,get方法
//        imageIcon.layer.cornerRadius = 45
//        imageIcon.layer.masksToBounds = true
//        获取屏幕尺寸
//        let scale = UIScreen.mainScreen().scale
//        imageIcon.layer.cornerRadius = 180/scale/2
        imageIcon.layer.cornerRadius = 45
//        设置自动布局
        imageIcon.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(view.snp_centerX)
            make.bottom.equalTo(view.snp_bottom).offset(-180)
            //在SnapKit 0.18版本上 直接设置 size 不会有效果  那就可以使用 width + height
            //            make.width.equalTo(90)
            //            make.height.equalTo(90)
//     设置照片的大小()这样就可以直接设为45
            make.size.equalTo(CGSize(width: 90, height: 90))
        }
        nameLabel.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(imageIcon.snp_centerX)
            make.top.equalTo(imageIcon.snp_bottom).offset(16)
            
        }
        //加载头像,在此之前要有一个占位图
        //网络提供的数据不能够直接使用 需要转换数据(洗数据)
        guard let url:NSURL = NSURL(string: MJUserAccountViewModel.sharedAccount.account?.avatar_large ?? "")else {
            return
        }
        imageIcon.sd_setImageWithURL(url)
    }
    
//    1.开启动画
    private func startAnimation(){
        let offset = -UIScreen.mainScreen().bounds.height+180
//        1.2设置文字的动画
        nameLabel.alpha = 0
//        更新约束
        imageIcon.snp_updateConstraints { (make) -> Void in
            make.bottom.equalTo(view.snp_bottom).offset(offset)
        }
        //执行动画  弹簧动画
        /*
        1.usingSpringWithDamping : 阻尼系数 弹簧系数 0 ~ 1,阻尼系数越小弹簧效果越大
        2. initialSpringVelocity: 加速度  开始的时候的加速度, 值越大 开始的速速就越快
        3. 动画的可选项OC: 按位与 XXX | XXX swift: [xxx,xxx]
        */
        //动画效果要修改的代码 frame布局 修改frame
        UIView.animateWithDuration(1.2, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 5, options:[], animations: { () -> Void in
//            重新布局
            self.view.layoutIfNeeded()
            }) { (_) -> Void in
                //添加文案显示的动画
                UIView.animateWithDuration(0.6, animations: { () -> Void in
                    //显示nameLabel
                    self.nameLabel.alpha=1
                    }, completion: { (Bool) -> Void in
//                        TODO :跳转页面
//                        UIApplication.sharedApplication().keyWindow?.rootViewController = MJMainTabBarController()
//                     添加通知的发布者,通知名字,object可以当作标识符,来判断是哪个通知,进行跳转到哪个控制器
                        NSNotificationCenter.defaultCenter().postNotificationName(MJSwitchRootViewController, object: "main")
                })
        }
       
    }
    
//    懒加载 
    private lazy var imageIcon:UIImageView = {
       let icon = UIImageView()
        icon.image = UIImage(named: "avatar_default_big")
        return icon
    }()
    private lazy var nameLabel:UILabel = {
       let l = UILabel()
        l.sizeToFit()
        l.textColor = UIColor.darkGrayColor()
        l.text = MJUserAccountViewModel.sharedAccount.account?.name
//        l.text = "哈哈"
        l.font = UIFont.systemFontOfSize(14)
        return l
    }()
}
